var companyJSONArray = [["福耀玻璃", "01"], ["万达公司", "02"], ["长春轿车", "04"],
		["重庆配件公司", "05"], ["上海轿车", "06"], ["机械制造", "07"], ["北京公司", "11"],
		["通辽公司", "12"], ["长春巴士", "13"], ["重庆公司（新区）", "14"], ["广州福耀", "18"],
		["包边公司", "19"], ["集团总办", "20"], ["大巴公司", "26"], ["上海客车", "27"],
		["湖北公司", "30"], ["郑州福耀", "40"], ["广东佛山", "42"], ["成都绿榕", "45"],
		["沈阳福耀", "43"], ["烟台福耀", "46"], ["福州福耀模具", "47"], ["武汉福耀", "49"],
		["保定福耀", "50"],["天津福耀","52"]];
// [['Fuyao Europe GmbH', '34'], ['福耀日本', '35'],
// ['福耀玻璃', '01'], ['万达公司', '02'], ['长春轿车', '04'], ['重庆配件公司', '05'],
// ['上海轿车', '06'], ['机械制造', '07'], ['浮法公司', '09'], ['长春双辽分公司', '10'],
// ['北京公司', '11'], ['通辽公司', '12'], ['长春巴士', '13'], ['重庆公司（新区）', '14'],
// ['特耐王福州公司', '15'], ['海南浮法', '16'], ['广州南沙', '17'], ['广州福耀', '18'],
// ['包边公司', '19'], ['集团总办', '20'], ['福耀香港', '22'], ['福耀北美有限公司', '23'],
// ['福耀汽配', '24'], ['双辽公司', '25'], ['大巴公司', '26'], ['上海客车', '27'],
// ['福耀工程玻璃公司', '28'], ['福耀韩国株式会社', '29'], ['湖北公司', '30'],
// ['福耀上海汽车饰件', '31'], ['海南硅砂', '32'], ['Meadland Limited', '33'],
// ['福耀集团（香港）', '36'], ['广东佛山', '42'], ['郑州福耀', '40'], ['成都绿榕', '45']];

Ext.onReady(function() {

	Ext.state.Manager.setProvider(new Ext.state.CookieProvider());

	var params = "";
	Ext.Ajax.timeout = 9000000;

	function formatDate(value) {
		if (value != "") {
			return value + "T";
		} else {
			return ""
		}
	}

	var proto = Ext.picker.Date.prototype, date = Ext.Date;

	proto.monthNames = date.monthNames;
	proto.dayNames = date.dayNames;
	proto.format = date.defaultFormat;

	var store = new Ext.data.SimpleStore({
				fields : [{
							name : 'index',
							mapping : 'index'
						}, {
							name : 'company',
							mapping : 'company'
						}, {
							name : 'projectName',
							mapping : 'projectName'
						}, {
							name : 'Number',
							mapping : 'Number'
						}, {
							name : 'lastCost',
							mapping : 'cost'
						}, {
							// name : 'subject',
							// mapping : 'subject'
							// }, {
							name : 'cost',
							mapping : 'cost'
						}, {
							name : 'yujifeiyong',
							mapping : 'yujifeiyong'
						}, {
							name : 'monthCost',
							mapping : 'monthCost'
						}, {
							name : 'lastMonthCost',
							mapping : 'lastMonthCost'
						}, {
							name : 'lastLastMonthCost',
							mapping : 'lastLlastMonthCost'
						}, {
							name : 'balance',
							mapping : 'balance'
						}, {
							name : 'lastMonthCost',
							mapping : 'lastMonthCost'
						}, {
							name : 'percentage',
							mapping : 'percentage'
						}]
			});
	// store.loadData(myData);

	var expByActiveXObject = function() {
		try {
			var excelApp = new ActiveXObject("Excel.Application");
			var excelBook = excelApp.Workbooks.Add();// 创建Excel工作簿文件

			var excelSheet = excelBook.ActiveSheet;// 激活Excel工作表

			excelSheet.Cells(1, 1).value = "序号";
			excelSheet.Cells(1, 2).value = "制造部";
			excelSheet.Cells(1, 3).value = "项目名称";
			excelSheet.Cells(1, 4).value = "项目令号";
			excelSheet.Cells(1, 5).value = "当月增加额";
			excelSheet.Cells(1, 6).value = "上月增加额";
			excelSheet.Cells(1, 7).value = "上上月增加额";
			excelSheet.Cells(1, 8).value = "累计发生额";
			excelSheet.Cells(1, 9).value = "当月余额";
			excelSheet.Cells(1, 10).value = "预算额（万元）";
			excelSheet.Cells(1, 11).value = "完成率";

			var rowLen = store.getCount();// table对象的行数

			for (var i = 1; i < rowLen + 1; i++) {

				var colLen = printTable.rows(i).cells.length;// table对象的列数

				// 为Excel表的单元格赋值
				excelSheet.Cells(i + 1, 1).value = store.getAt(i - 1)
						.get('index');
				excelSheet.Cells(i + 1, 2).value = store.getAt(i - 1)
						.get('company');
				excelSheet.Cells(i + 1, 3).value = store.getAt(i - 1)
						.get('projectName');
				excelSheet.Cells(i + 1, 4).value = store.getAt(i - 1)
						.get('Number');
				excelSheet.Cells(i + 1, 5).value = store.getAt(i - 1)
						.get('monthCost');
				excelSheet.Cells(i + 1, 6).value = store.getAt(i - 1)
						.get('lastMonthCost');
				excelSheet.Cells(i + 1, 7).value = store.getAt(i - 1)
						.get('lastLastMonthCost');
				excelSheet.Cells(i + 1, 8).value = store.getAt(i - 1)
						.get('cost');
				excelSheet.Cells(i + 1, 9).value = store.getAt(i - 1)
						.get('balance');
				excelSheet.Cells(i + 1, 10).value = store.getAt(i - 1)
						.get('yujifeiyong');
				excelSheet.Cells(i + 1, 11).value = (store.getAt(i - 1)
						.get('percentage') == "异常" ? "异常" : (value + "%"));

			} // 将表格中的每个单元格的innerText导入到excel的单元格中

			excelApp.Visible = true;// 设置Excel对象可见}

//			excelSheet.PrintOut(); // 打印工作表

			excelBook.Close(true); // 关闭文档

			excelApp.Quit(); // 结束excel对象

			excelApp = null; // 释放excel对象
		} catch (e) {
			return false;
		}
		return true;
	};

	var queryCost = function(operate) {
		Ext.getCmp("number").focus(true);

		var myMask = new Ext.LoadMask(Ext.getBody(), {
					msg : '正在查询，请稍后……',
					msgCls : 'z-index:10000;'
				});
		myMask.show();
		store.removeAll();
		var earlyStr = formatDate(Ext.getCmp('early').getValue()) + "";
		var lastStr = formatDate(Ext.getCmp('last').getValue()) + "";

		params = formatDate(Ext.getCmp('last').getValue());
		params += '&early=' + (earlyStr == "" ? "2000-01-01T" : early);
		params += '&last=' + (lastStr == "" ? "3000-01-01T" : lastStr);
		params += '&company='
				+ encodeURIComponent(Ext.getCmp('companySelect').getRawValue());
		params += '&number=' + Ext.getCmp('number').getValue();
		Ext.Ajax.request({
					url : '../../../fy_view/erp2oaController.do',
					callback : function(options, success, response) {
						// Ext.MessageBox.alert('提示',
						// );
						var result = Ext.decode(response.responseText);
						myMask.hide();
						if (success) {
							store.loadData(result.data);
						} else {
							Ext.MessageBox.alert('提示', result.msg);
						}
					},
					params : {
						method : 'queryCost',
						early : (earlyStr == "" ? "2000-01-01T" : earlyStr),
						last : (lastStr == "" ? "3000-01-01T" : lastStr),
						company : encodeURIComponent(Ext
								.getCmp('companySelect').getRawValue()),
						number : Ext.getCmp('number').getValue()
					}
				});
	};
	var expend = function() {
		var count = store.getCount();
		if (count > 0) {
			alert("导出数据需要一段时间处理，请耐心等待");
			document.getElementById("download").src = "../../../erp2oaController.do?method=expendProjectExpenseReports&"
					+ params;
			// var fileURL = window
			// .open(
			// "../../../erp2oaController.do?method=expendProjectExpenseReports&"
			// + params,
			// "_blank",
			// "height=1,width=1,toolbar=no,menubar=no,scrollbars=no,resizable=on,location=no,status=no");
		} else {
			Ext.MessageBox.alert('提示', "没有可以导出的数据");
		}
	};

	var viewport = new Ext.Viewport({
				layout : 'border',
				border : false,
				items : [{
					region : 'north',
					id : 'north-panel',
					split : true,
					width : '100%',
					height : 55,
					border : false,
					layout : 'absolute',
					border : 0,
					// defaultType : 'datefield',
					items : [{
								x : 5,
								y : 20,
								xtype : 'label',
								text : '起始日期：'
							}, {
								x : 65,
								y : 15,
								name : 'early',
								xtype : 'field',
								id : 'early',
								width : 100,
								listeners : {
									// change : function() {
									// Ext.getCmp('last').setMinValue(Ext
									// .getCmp('early').getValue());
									// },
									focus : function() {
										WdatePicker({
													readOnly : true,
													maxDate : Ext
															.getCmp('last')
															.getValue()
												});
									}
								}
							}, {
								x : 175,
								y : 20,
								xtype : 'label',
								text : '结束日期：'
							}, {
								x : 235,
								y : 15,
								xtype : 'field',
								name : 'last',
								id : 'last',
								readonly : true,
								width : 100,
								listeners : {
									// change : function() {
									// Ext.getCmp('early').setMaxValue(Ext
									// .getCmp('last').getValue());
									// },
									focus : function() {
										WdatePicker({
													readOnly : true,
													minDate : Ext
															.getCmp('early')
															.getValue()
												});
									}
								}
							}, {
								x : 345,
								y : 20,
								xtype : 'label',
								text : '项目令号查询：'
							}, {
								x : 435,
								y : 15,
								xtype : 'field',
								name : 'number',
								id : 'number',
								width : 150
							}, {
								x : 605,
								y : 20,
								xtype : 'label',
								text : '公司：'
							}, {
								x : 645,
								y : 15,
								xtype : 'combo',
								name : 'companySelect',
								id : 'companySelect',
								width : 150,
								xtype : 'combo',

								store : new Ext.data.SimpleStore({
									fields : ['tname', 'tid'],
									data : companyJSONArray
										// url :
										// "../../../erp2oaController.do?method=getCompanyJSON&operate=1"

									}),
								editable : true,
								mode : 'local',// 获取本地的值
								triggerAction : 'all',
								valueField : 'tid',// value值，与fields对应
								displayField : 'tname'
							}, {
								x : 800,
								y : 15,
								xtype : 'panel',
								border : false,
								items : [{
											xtype : 'button',
											text : '查询',
											listeners : {
												click : function() {
													queryCost();
												}
											}
										}]
							}, {
								x : 855,
								y : 15,
								xtype : 'panel',
								border : false,
								items : [{
											xtype : 'button',
											text : '导出',
											listeners : {
												click : function() {
													if (!expByActiveXObject())
														expend();
												}
											}
										}]
							}]
				}, {
					region : 'center',
					autoScroll : true,
					store : store,
					xtype : 'grid',
					columns : [{
								header : "序号",
								width : 60,
								sortable : true,
								dataIndex : 'index'
							}, {
								id : 'company',
								header : "制造部",
								width : 100,
								sortable : true,
								dataIndex : 'company'
							}, {
								// header : "子目段",
								// width : 100,
								// sortable : true,
								// dataIndex : 'subject'
								// }, {
								header : "项目名称",
								sortable : true,
								width : 200,
								dataIndex : 'projectName'
							}, {
								header : "项目令号",
								width : 100,
								sortable : true,
								dataIndex : 'Number'
							}, {
								header : "当月增加额",
								width : 100,
								sortable : true,
								dataIndex : 'monthCost'
							}, {
								header : "上月增加额",
								width : 100,
								sortable : true,
								dataIndex : 'lastMonthCost'
							}, {
								header : "上上月增加额",
								width : 100,
								sortable : true,
								dataIndex : 'lastLastMonthCost'
							}, {
								header : "累计发生额",
								width : 100,
								sortable : true,
								dataIndex : 'cost'
							}, {
								header : "余额",
								width : 100,
								sortable : true,
								dataIndex : 'balance'
							}, {
								header : "预算额(万)",
								width : 100,
								sortable : true,
								dataIndex : 'yujifeiyong',
								renderer : function(value, metadata, record,
										rowIndex) {
									return value;
								}
							}, {
								header : "完成率",
								width : 100,
								sortable : true,
								dataIndex : 'percentage',
								renderer : function(value, metadata, record,
										rowIndex) {
									return value == "异常"
											? "<a style='color: red'>异常</a>"
											: (value + "%");
								}
							}],
					viewConfig : {
						getRowClass : function(record, rowIndex, rowParams,
								store) {
							if (record.data.lastLastMonthCost == 0
									&& record.data.lastMonthCost == 0
									&& record.data.monthCost == 0) {
								return 'x-grid-record-yellow';
							}

							if (record.data.percentage >= 105) {
								return 'x-grid-record-red';
							}

						}
					}
				}]
			});
});